로딩 중이에요... 🐣
[코담]
웹개발·실전 프로젝트·AI까지, 파이썬·장고의 모든것을 담아낸 강의와 개발 노트
Pandas Part3 실전 데이터 분석 프로젝트 | ✅ 편저: 코담 운영자
📖 데이터 분석의 시작, Pandas 완전 정복 - Part 3: 실전 데이터 분석 프로젝트
✨ 서론: 실전 데이터 분석으로 배우는 Pandas
이번 파트에서는 Pandas와 시각화 라이브러리(Matplotlib, Seaborn)를 사용하여 Titanic 데이터셋의 탐색적 데이터 분석(EDA)을 수행합니다. 실전 데이터를 다루면서 패턴을 찾고 인사이트를 도출하는 과정을 단계별로 보여드립니다.
💡 팁: EDA는 데이터를 이해하고, 모델링에 필요한 Feature Engineering의 아이디어를 얻기 위한 핵심 단계입니다.
📦 Step 1: Titanic 데이터셋 불러오기 및 준비
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
# 데이터 로드
df = pd.read_csv('titanic.csv')
데이터 기본 정보 확인
df.info()
df.describe()
df.head()
🔍 Step 2: 주요 변수 탐색
생존자 분포 확인
# 생존자(1), 사망자(0) 비율 시각화
sns.countplot(x='Survived', data=df)
plt.title('Survival Count')
plt.show()
성별에 따른 생존율 비교
df.groupby('Sex')['Survived'].mean()
# 시각화
sns.barplot(x='Sex', y='Survived', data=df)
plt.title('Survival Rate by Gender')
plt.show()
나이에 따른 생존율 분포
# 나이 결측치 처리
df['Age'].fillna(df['Age'].median(), inplace=True)
# 히스토그램
sns.histplot(df[df['Survived']==1]['Age'], color='green', label='Survived', kde=True)
sns.histplot(df[df['Survived']==0]['Age'], color='red', label='Did not survive', kde=True)
plt.legend()
plt.title('Age Distribution by Survival')
plt.show()
📊 Step 3: 선실 등급과 생존율 분석
Pclass별 생존율
df.groupby('Pclass')['Survived'].mean()
시각화
sns.barplot(x='Pclass', y='Survived', data=df)
plt.title('Survival Rate by Passenger Class')
plt.show()
💡 팁: Titanic 데이터에서는 상위 클래스일수록 생존 확률이 높다는 패턴을 쉽게 발견할 수 있습니다.
📚 Step 4: 상관관계 분석
# 수치형 변수 상관관계 히트맵
corr_matrix = df.corr()
sns.heatmap(corr_matrix, annot=True, cmap='coolwarm')
plt.title('Correlation Heatmap')
plt.show()
📌 Step 5: 결론 및 인사이트 요약
- 여성의 생존율이 남성보다 높음
- 나이가 어린 승객(특히 어린이)의 생존율이 높음
- 1등석 승객의 생존 확률이 높음
- Fare(운임)와 생존 간에도 약한 양의 상관관계가 존재
🚀 팁: 이러한 분석 결과는 머신러닝 모델링을 위한 Feature Selection과 엔지니어링 단계에서 활용됩니다.